package com.demo.service;

import com.demo.dto.Dogdto;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class DogService {
    // 用于存储 Dogdto 对象的列表
    private List<Dogdto> list;


    // 获取Dogdto 所有对象的方法
    public List<Dogdto> getAllDogdto() {
        // 如果列表为空，则初始化
        if (list == null) {
            list = new ArrayList<>();
        } else {
            // 遍历列表
            for (int i = 0; i < list.size(); i++) {
                Dogdto dog = list.get(i);
                //System.out.println(dog.getName());
                //System.out.println("id "+dog.getId()+"名字 "+dog.getName()+"年龄 "+dog.getAge());
            }

        }
        // 打印狗的总数
        System.out.println("一共有" + this.list.size() + "只狗");
        return list;

    }

    // 向列表中添加新的 Dogdto 对象的方法
    public boolean addDog(Dogdto dog) {
        // 将狗添加到列表中
        this.list.add(dog);
        // 返回 true 表示成功
        return true;
    }









    // 根据 ID 替换现有 Dogdto 对象的方法
    public boolean updateDog(int id, Dogdto dog) {
        boolean flag = false;
        try {
            // 计数器，用于跟踪是否超过狗的列表
            int count = 0;
            // 遍历列表以根据 ID 查找狗
            for (int i = 0; i < this.list.size(); i++) {
                Dogdto dog1 = this.list.get(i);
                if (id == dog1.getId()) {
                    // 更新狗的ID
                    dog1.setId(dog1.getId());
                    // 更新狗的年龄
                    dog1.setAge(dog1.getAge());
                    flag = true;
                    break;
                } else {
                    count++;
                }
                // 如果计数等于列表的大小，则表示未找到狗
                if (count == this.list.size()) {
                    System.out.println("未找到修改的人");

                }
            }

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        // 返回成功标志
        return flag;

    }
    public boolean updateByDog(String name, Dogdto dog) {
        boolean flag = false;
        try {
            // 计数器，用于跟踪是否超过狗的列表
            int count = 0;
            // 遍历列表以根据 ID 查找狗
            for (int i = 0; i < this.list.size(); i++) {
                Dogdto dog1 = this.list.get(i);
                if (Objects.equals(name, dog1.getName())) {


                    // 更新狗的ID
                    //dog1.setId(dog1.getId());
                    // 更新狗的年龄
                    dog1.setAge(dog.getAge());
                    flag = true;
                    continue;
                } else {
                    count++;
                }
                // 如果计数等于列表的大小，则表示未找到狗
                if (count == this.list.size()) {
                    System.out.println("未找到修改的狗");

                }
            }

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        // 返回成功标志
        return false;

    }
    public List<Dogdto> updateByDog1(String name, int age) {

        try {
            // 计数器，用于跟踪是否超过狗的列表
            int count = 0;

            // 遍历列表以根据 ID 查找狗
            for (int i = 0; i < this.list.size(); i++) {
                Dogdto dog1 = this.list.get(i);
                if (Objects.equals(name, dog1.getName())) {
                    //dog1.getAge() = age;


                    // 更新狗的ID
                    //dog1.setId(dog1.getId());
                    // 更新狗的年龄
                    System.out.println("id "+dog1.getId()+"修改的年龄为 "+dog1.getAge());
                    dog1.setAge(age);
                    System.out.println("id "+dog1.getId()+"修改的年龄为 "+dog1.getAge());

                    //flag = true;
                    continue;
                } else {
                    count++;
                }
                // 如果计数等于列表的大小，则表示未找到狗
                if (count == this.list.size()) {
                    System.out.println("未找到修改的狗");

                }
            }

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        // 返回成功标志
        return list;

    }



    // 根据 ID 查询 Dogdto 对象的方法
    public Dogdto quert(int id) {
        Dogdto dog = null;
        try {
            // 遍历列表以根据 ID 查找狗
            for (int i = 0; i < this.list.size(); i++) {
                dog = this.list.get(i);
                // 检查当前狗的 ID 是否与提供的 ID 匹配
                if (id == dog.getId()) {
                    // 找到后退出循环
                    break;
                }

            }
            System.out.println("没有找到数据");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return dog;
    }

    public boolean removeDogdto(int id) {
        // 根据索引（ID 应该是索引）从列表中移除狗
        this.list.remove(id);
        return true;
    }
    public List<Dogdto> getDogsByIds(List<Integer> ids) {
        List<Dogdto> result = new ArrayList<>();


        for (Integer id : ids) {
            Dogdto dog = quert(id); // 使用 quert 方法查找每个 ID
            if (dog != null) {
                result.add(dog); // 如果找到，添加到结果列表
            }
        }

        return result; // 返回匹配的 Dogdto 列表
    }








}